home *** CD-ROM | disk | FTP | other *** search
/ Freelog 115 / FreelogNo115-MaiJuin2013.iso / Internet / Filezilla Server / FileZilla_Server-0_9_41.exe / source / Accounts.h < prev    next >
C/C++ Source or Header  |  2011-11-06  |  2KB  |  96 lines

  1. #ifndef ACCOUNTS_H_INCLUDED
  2. #define ACCOUNTS_H_INCLUDED
  3.  
  4. #ifdef _AFX
  5. #define CStdString CString
  6. #define CStdStringW CStringW
  7. #define CStdStringA CStringA
  8. #endif //_AFX
  9.  
  10. #include "SpeedLimit.h"
  11.  
  12. class t_directory
  13. {
  14. public:
  15.     t_directory();
  16. #ifdef SERVICE
  17.     CStdString dir;
  18.     std::list<CStdString> aliases;
  19. #else
  20.     CStdString dir;
  21.     std::list<CStdString> aliases;
  22. #endif
  23.     BOOL bFileRead, bFileWrite, bFileDelete, bFileAppend;
  24.     BOOL bDirCreate, bDirDelete, bDirList, bDirSubdirs, bIsHome;
  25.     BOOL bAutoCreate;
  26. };
  27.  
  28. enum sltype
  29. {
  30.     download = 0,
  31.     upload = 1
  32. };
  33.  
  34. class t_group
  35. {
  36. public:
  37.     t_group();
  38.  
  39.     virtual int GetRequiredBufferLen() const;
  40.     virtual int GetRequiredStringBufferLen(const CStdString& str) const;
  41.     virtual char * FillBuffer(char *p) const;
  42.     virtual void FillString(char *&p, const CStdString& str) const;
  43.     virtual unsigned char * ParseBuffer(unsigned char *pBuffer, int length);
  44.  
  45.     virtual bool BypassUserLimit() const;
  46.     virtual int GetUserLimit() const;
  47.     virtual int GetIpLimit() const;
  48.     virtual bool IsEnabled() const;
  49.     virtual bool ForceSsl() const;
  50.  
  51.     virtual int GetCurrentSpeedLimit(sltype type) const;
  52.     virtual bool BypassServerSpeedLimit(sltype type) const;
  53.  
  54.     bool AccessAllowed(const CStdString& ip) const;
  55.  
  56.     virtual t_group& t_group::operator=(const t_group &a);
  57.  
  58.     CStdString group;
  59.     std::vector<t_directory> permissions;
  60.     int nBypassUserLimit;
  61.     int nUserLimit, nIpLimit;
  62.     int nEnabled;
  63.     int forceSsl;
  64.  
  65.     int nSpeedLimitType[2];
  66.     int nSpeedLimit[2];
  67.     SPEEDLIMITSLIST SpeedLimits[2];
  68.     int nBypassServerSpeedLimit[2];
  69.     
  70.     std::list<CStdString> allowedIPs, disallowedIPs;
  71.  
  72.     CStdString comment;
  73.  
  74.     t_group *pOwner;
  75.  
  76. protected:
  77.     bool ParseString(const unsigned char* endMarker, unsigned char *&p, CStdString &string);
  78. };
  79.  
  80. class t_user : public t_group
  81. {
  82. public:
  83.     t_user();
  84.  
  85.     virtual int GetRequiredBufferLen() const;
  86.     virtual char * FillBuffer(char *p) const;
  87.     virtual unsigned char * ParseBuffer(unsigned char *pBuffer, int length);
  88.  
  89.     virtual t_user& t_user::operator=(const t_user &a);
  90.  
  91.     CStdString user;
  92.     CStdString password;
  93. };
  94.  
  95. #endif //#define ACCOUNTS_H_INCLUDED
  96.